package cl.vixionarios.biotika.servicio;

import java.util.ArrayList;
import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.UriInfo;
import javax.ws.rs.core.Response.ResponseBuilder;

import cl.vixionarios.biotika.dao.to.BioequivalenteTO;
import cl.vixionarios.biotika.enums.EnumMensajesError;
import cl.vixionarios.biotika.json.Mensaje;
import cl.vixionarios.biotika.mashup.ListaMedicamento;
import cl.vixionarios.biotika.services.BioequivalenteService;
import cl.vixionarios.biotika.servicio.datos.Medicamento;
import cl.vixionarios.biotika.servicio.datos.ResumenMedicamento;

@Path("/medicamento")
public class RestPrecio {
	
	private final Mensaje errorObtenerMenuP=EnumMensajesError.RECURSO_OBTENER_FORMULARIO;
	
	@GET
	@Path("/detalle")
	@Produces("application/json; charset=UTF-8")
	public Response obtenerPrecioDetalle(@Context UriInfo info, @Context HttpServletRequest request)
	{
		ResponseBuilder builder = null;
		String nombre = request.getParameter("nombre");
		List<Medicamento> lm = ListaMedicamento.obtenerMedicamentos(nombre);

		
		if(lm.size() > 0)
		{
			builder = Response.ok(lm);
		}
		else
		{
			cl.vixionarios.biotika.json.Error errorJson= new cl.vixionarios.biotika.json.Error(errorObtenerMenuP);
			errorJson.setRequest(info.getPath()+"?"+info.getRequestUri().getQuery());

			builder = Response.status(errorObtenerMenuP.getStatus());
			builder.entity(errorJson);
		}
			
		return builder.build();
	}


	@GET
	@Path("/obtener")
	@Produces("application/json; charset=UTF-8")
	public Response obtenerPrecio(@Context UriInfo info, @Context HttpServletRequest request)
	{
		ResponseBuilder builder = null;
		String nombre = request.getParameter("nombre");
		List<Medicamento> lm = ListaMedicamento.obtenerMedicamentos(nombre);

		long max=0,min=0,temp=0;
		String valor;
		if(lm.size()>0)
		{
			valor=lm.get(0).getPrecio();
			valor=valor.replace("$ ","");
			valor=valor.replace(".00","");
			min=Long.parseLong(valor);
			max=min;
			
		}
		
		for(int i =1; i< lm.size();i++)
		{
			valor=lm.get(i).getPrecio();
			valor=valor.replace("$ ","");
			valor=valor.replace(".00","");
			temp=Long.parseLong(valor);
			if(temp>max)
			{
				max=temp;
			}
			
			
			if(temp<min)
			{
				min=temp;
			}
			
		}
		
		if(lm.size() > 0)
		{
			ResumenMedicamento rm= new ResumenMedicamento();
			rm.setMax("$ "+max);
			rm.setMin("$ "+min);
			rm.setProducto(nombre);
			builder = Response.ok(rm);
		}
		else
		{
			cl.vixionarios.biotika.json.Error errorJson= new cl.vixionarios.biotika.json.Error(errorObtenerMenuP);
			errorJson.setRequest(info.getPath()+"?"+info.getRequestUri().getQuery());

			builder = Response.status(errorObtenerMenuP.getStatus());
			builder.entity(errorJson);
		}
			
		return builder.build();
	}
	
	
}
